Explanation: it's mostly due to how js does type conversion. for the Ls, it's
>[] is an empty array
>![] is treated as false
>combining a boolean with the empty array returns "false" as a string (so true + [] = "true", false + [] = "false")
>! + [] is treated as true
>! + [] + ! + [] is treated as 2 since true + true = 1 + 1 = 2
>so you have "false"[2], which is l
for the o it's
>[] is an empty array
>[] + {} returns "[object Object]" as a string ({} + [] returns 0)
>![] is false
>!![] is true
>+!![] casts it to an integer
>so that part is "[object Object]"[1], which returns "o"
Is this server going to keep its federation blocklist empty? I am likely going to move here from another instance because they have defederated a few servers now