B. 四七五五
time limit per test
2 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output

在类 Unix 操作系统(如 Linux、macOS)中,每个文件和目录都有一组权限,用于控制谁可以读取、写入或执行它。

普通权限分为三组:所有者(user)、所属组(group)和其他用户(other)。每组权限用三个字符表示,依次对应读($$$\mathtt{\color{orange}{r}}$$$)、写($$$\mathtt{\color{red}{w}}$$$)、执行($$$\mathtt{\color{green}{x}}$$$);若某项权限不存在,则对应位置显示为 -。将三组权限的字符依次拼接,即得到长度为 $$$9$$$ 的符号表示。

例如 $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-- 表示所有者可读、可写、可执行($$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}$$$),所属组可读、可执行($$$\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}$$$),其他用户只读($$$\mathtt{\color{orange}{r}}$$$--)。

除三组普通权限外,还有三种特殊权限:setuid、setgid 和 sticky bit。

一个文件的完整权限可以用四位八进制数表示:从高到低四位依次为特殊权限位 $$$a$$$、所有者权限位 $$$b$$$、所属组权限位 $$$c$$$ 和其他用户权限位 $$$d$$$,每一位都是 $$$0 \sim 7$$$ 的数字。

普通权限位 $$$b$$$、$$$c$$$、$$$d$$$ 与符号表示中的三组字符一一对应:每一位的三个二进制位从高到低依次对应 r、w、x,对应位为 $$$1$$$ 表示具有该权限,为 $$$0$$$ 则没有。

例如 $$$7 = (111)_2$$$ 表示 $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}$$$,$$$5 = (101)_2$$$ 表示 $$$\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}$$$,$$$4 = (100)_2$$$ 表示 $$$\mathtt{\color{orange}{r}}$$$--。

把后三位 $$$7$$$、$$$5$$$、$$$4$$$ 对应的字符依次拼接,$$$0754$$$ 的符号表示就是 $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$--。

特殊权限位 $$$a$$$ 的三个二进制位从高到低依次对应 setuid、setgid、sticky bit。例如 $$$a = 5 = (101)_2$$$ 表示同时设置 setuid 和 sticky bit。三种特殊权限的含义如下:

  • setuid:通常用于可执行文件(如 passwd),执行时进程临时获得文件所有者的权限;
  • setgid:作用于文件时与 setuid 类似(获得所属组的权限);作用于目录时,目录下新建的文件和子目录自动继承该目录的所属组;
  • sticky bit:主要作用于目录(如 /tmp),使得用户只能删除自己拥有的文件。

特殊权限不会增加字符,而是替换符号表示中某个执行位上的字符:

  • setuid 替换所有者组的执行位(第 $$$3$$$ 个字符);
  • setgid 替换所属组的执行位(第 $$$6$$$ 个字符);
  • sticky bit 替换其他用户组的执行位(第 $$$9$$$ 个字符)。

替换规则为:若该位置原为 $$$\mathtt{\color{green}{x}}$$$,setuid 和 setgid 将其替换为小写字母 $$$\mathtt{\color{purple}{s}}$$$,sticky bit 将其替换为小写字母 $$$\mathtt{\color{purple}{t}}$$$;若该位置原为 -,则替换为对应的大写字母 $$$\mathtt{\color{purple}{S}}$$$ 或 $$$\mathtt{\color{purple}{T}}$$$。

例如 $$$4755$$$ 的符号表示为 $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{s}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}$$$:setuid 生效,且所有者组的执行位原为 $$$\mathtt{\color{green}{x}}$$$,故替换为小写 $$$\mathtt{\color{purple}{s}}$$$。

给定一个用四位八进制数表示的权限,请你输出它对应的符号表示。

Input

本题的输入包含多组测试用例。

第一行一个整数 $$$T$$$($$$1 \leq T \leq 4096$$$),表示测试用例的数量。对于每组测试用例:

  • 一个长度为 $$$4$$$ 的字符串 $$$s$$$,表示一个四位八进制数(可能含有前导零),保证 $$$s$$$ 中只出现数字 $$$0 \sim 7$$$。
Output

对于每组测试用例:输出一行一个长度为 $$$9$$$ 的字符串,表示该权限对应的符号表示。

Example
Input
7
0755
4755
4644
1777
2000
7777
5070
Output
rwxr-xr-x
rwsr-xr-x
rwSr--r--
rwxrwxrwt
-----S---
rwsrwsrwt
--Srwx--T
Note
  • $$$0755 \to$$$ $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}$$$:未设置任何特殊权限;
  • $$$4755 \to$$$ $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{s}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}$$$-$$$\mathtt{\color{green}{x}}$$$:setuid 生效,第 $$$3$$$ 位原为 $$$\mathtt{\color{green}{x}}$$$,替换为小写 $$$\mathtt{\color{purple}{s}}$$$;
  • $$$4644 \to$$$ $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{S}}\mathtt{\color{orange}{r}}$$$--$$$\mathtt{\color{orange}{r}}$$$--:setuid 生效,第 $$$3$$$ 位原为 -,替换为大写 $$$\mathtt{\color{purple}{S}}$$$;
  • $$$1777 \to$$$ $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{t}}$$$:sticky bit 生效,第 $$$9$$$ 位原为 $$$\mathtt{\color{green}{x}}$$$,替换为小写 $$$\mathtt{\color{purple}{t}}$$$;
  • $$$2000 \to$$$ -----$$$\mathtt{\color{purple}{S}}$$$---:setgid 生效,第 $$$6$$$ 位原为 -,替换为大写 $$$\mathtt{\color{purple}{S}}$$$;
  • $$$7777 \to$$$ $$$\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{s}}\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{s}}\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{purple}{t}}$$$:三种特殊权限同时生效;
  • $$$5070 \to$$$ --$$$\mathtt{\color{purple}{S}}\mathtt{\color{orange}{r}}\mathtt{\color{red}{w}}\mathtt{\color{green}{x}}$$$--$$$\mathtt{\color{purple}{T}}$$$:setuid 与 sticky bit 生效;