digraph{
0[label="Node Type: ENTRY_POINT 0
"];
0->1;
1[label="Node Type: IF 1

EXPRESSION:
uint256(x) & uint256(Roles.A | Roles.B) != 0

IRs:
TMP_0 = CONVERT x to uint256
REF_0(in.Roles) -> Roles.A
REF_1(in.Roles) -> Roles.B
TMP_1(in.Roles) = REF_0 | REF_1
TMP_2 = CONVERT TMP_1 to uint256
TMP_3(uint256) = TMP_0 & TMP_2
TMP_4(bool) = TMP_3 != 0
CONDITION TMP_4"];
1->3[label="True"];
1->2[label="False"];
2[label="Node Type: END_IF 2
"];
2->4;
3[label="Node Type: RETURN 3

EXPRESSION:
True

IRs:
RETURN True"];
3->2;
4[label="Node Type: IF 4

EXPRESSION:
uint256(x) & uint256(Roles.A | Roles.B) == 0

IRs:
TMP_5 = CONVERT x to uint256
REF_2(in.Roles) -> Roles.A
REF_3(in.Roles) -> Roles.B
TMP_6(in.Roles) = REF_2 | REF_3
TMP_7 = CONVERT TMP_6 to uint256
TMP_8(uint256) = TMP_5 & TMP_7
TMP_9(bool) = TMP_8 == 0
CONDITION TMP_9"];
4->6[label="True"];
4->5[label="False"];
5[label="Node Type: END_IF 5
"];
5->7;
6[label="Node Type: RETURN 6

EXPRESSION:
False

IRs:
RETURN False"];
6->5;
7[label="Node Type: RETURN 7

EXPRESSION:
False

IRs:
RETURN False"];
}
