// This code is generated by [cargo-atcoder-extend](https://github.com/dijdzv/cargo-atcoder-extend) // Original source code: /* {{SOURCE_CODE}} */ fn main() { let exe = "/tmp/bin{{HASH}}"; std::io::Write::write_all(&mut std::fs::File::create(exe).unwrap(), &decode(BIN)).unwrap(); std::fs::set_permissions(exe, std::os::unix::fs::PermissionsExt::from_mode(0o755)).unwrap(); std::process::exit(std::process::Command::new(exe).status().unwrap().code().unwrap()) } fn decode(v: &str) -> Vec { let mut ret = vec![]; let mut buf = 0; let mut tbl = vec![64; 256]; for i in 0..64 { tbl[TBL[i] as usize] = i as u8; } for (i, c) in v.bytes().filter_map(|c| { let c = tbl[c as usize]; if c < 64 { Some(c) } else { None } }).enumerate() { match i % 4 { 0 => buf = c << 2, 1 => { ret.push(buf | c >> 4); buf = c << 4; } 2 => { ret.push(buf | c >> 2); buf = c << 6; } 3 => ret.push(buf | c), _ => unreachable!(), } } ret } const TBL: &'static [u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; const BIN: &'static str = " {{BINARY}}";