fn b64(c: u8) -> u8 { if c >= 65 && c <= 90 { return c - 65 } if c >= 97 && c <= 122 { return c - 97 + 26 } if c >= 48 && c <= 57 { return c - 48 + 52 } if c == 43 { return 62 } return 63 } fn decodeByte0(a: u8, b: u8) -> u8 { return b64(a) * 4 + b64(b) / 16 } fn decodeByte1(b: u8, c: u8) -> u8 { return (b64(b) % 16) * 16 + b64(c) / 4 } fn decodeByte2(c: u8, d: u8) -> u8 { return (b64(c) % 4) * 64 + b64(d) } pub fn main(world: World) -> Void raises { let ok: Bool = decodeByte0(84, 87) == 77 && decodeByte1(87, 70) == 97 && decodeByte2(70, 117) == 110 if ok { check world.out.write("base64 decode ok\n") } }