(typeattribute cil_gen_require)
(roleattribute cil_gen_require)
(handleunknown allow)
(mls true)
(policycap network_peer_controls)
(policycap open_perms)
(sid security)
(sidorder (security))
(sensitivity s0)
(sensitivityorder (s0))
(user first_u)
(user second_u)
(user third_u)
(userrole first_u object_r)
(userlevel first_u (s0))
(userlevel second_u (s0))
(userlevel third_u (s0))
(userrange first_u ((s0) (s0)))
(userrange second_u ((s0) (s0)))
(userrange third_u ((s0) (s0)))
(role object_r)
(roletype object_r test_t)
(type test_t)
(sidcontext security (first_u object_r test_t ((s0) (s0))))
(class test_class (test_perm))
(classorder (test_class))
(allow test_t self (test_class (test_perm)))
